design patterns interview questions